package com.company;

import java.math.BigInteger;

public class Tools {

    /**
     * 将char直接转化为int，其值就是字符的ascii
     *
     * @param ch
     * @return
     */
    public static byte charToByteAscii2(char ch) {
        byte byteAscii = (byte) ch;

        return byteAscii;
    }

    /**
     * ascii转换为char 直接int强制转换为char
     *
     * @param ascii
     * @return
     */
    public static char byteAsciiToChar(int ascii) {
        char ch = (char) ascii;
        return ch;
    }

    /**
     * 进制转换
     * @param data 原始数据
     * @param original 进制
     */
    public static void binaryConversion(Object data,int original) {
        if(original == 2){
            //二转十
            BigInteger bi = new BigInteger((String)data, 2);
            System.out.println("十进制：" + bi.intValue());
            //二转十六
            System.out.println("十六进制：" + bi.toString(16));
        }else if (original == 10){
            //十转二
            System.out.println("二进制：" + Integer.toBinaryString((int)data));
            //十转十六
            System.out.println("十六进制：" + Integer.toHexString((int)data));
        }else if (original == 16){
            //十六转二
            Integer num  = Integer.parseInt((String)data, 16);
            System.out.println("二进制：" + Integer.toBinaryString(num));
            //十六转十
            System.out.println("十进制：" + num);
        }

    }

    /**
     * 二进制转十、十六进制
     *
     * @param str
     */
    public static void binaryConversion(String str) {
        //二转十
        BigInteger bi = new BigInteger(str, 2);
        System.out.println("十进制：" + bi.intValue());
        //二转十六
        System.out.println("十六进制：" + bi.toString(16));
    }

    /**
     * 十进制转二、十六进制
     *
     * @param i
     */
    public static void decimalConversion(int i) {

    }

    /**
     * 十六进制转二、十进制
     *
     * @param hexstr
     */
    public static void hexadecimalConversion(String hexstr) {
        //十六转二
        Integer num  = Integer.parseInt(hexstr, 16);
        System.out.println("二进制：" + Integer.toBinaryString(num));
        //十六转十
        System.out.println("十进制：" + num);
    }
}
